Flash memory devices are special type of EEPROM that can be erased and written to in blocks instead of one byte at a time. Some applications of the flash memory include embedded control code and data of a cellular telephone so that it can easily be updated if necessary. Flash memory may also be used in modems because it enables the modem manufacturer to support new protocols as they become standardized. Flash memory may further be used in computers to provide a basic input/output system (BIOS) that can be upgraded. Other uses are known in the art.
FIG. 1 illustrates one prior art flash memory device 100. The memory 110 into which data is written has an X-decoder 160 and a Y-decoder 180 associated with it. The X-decoder 160 and Y-decoder 180 permit addressing the rows and columns of memory. A user interface 120 controls the flash memory device 100. The user interface 120 interfaces with a processor that controls access to the memory 110. A status register 130 stores the current status--writing, reading, or erasing--of the memory 110. The processor knows the status of the flash memory from the user interface 120.
Sense amplifiers 140 are associated with the memory 110. In one prior art implementation, the sense amplifiers are used to amplify signals for writing to and reading from the memory 110. For a row divided into sixteen input/outputs (I/Os), sixteen sense amplifiers 140 are used for writing and reading, one for each I/O. A charge pump 150 is further included in the flash memory 100. The charge pump 150 is used to provide the voltage levels needed for reading from, writing to, and erasing the memory 110. Generally, prior art flash memory devices are erased and written to as a block, consisting of a subset of memory 110. There is one set of circuitry, thus a user can not write to one block of the flash memory while simultaneously erasing or reading another block of the memory.
Simultaneous operation is desired in some applications that are constrained by the erase time (typically 250-500 ms) of a flash memory block. For example, a cellular telephone executes code directly from the flash memory. It is advantageous to be able to erase a separate memory block to reclaim space for data storage at the same time.
One prior art solution to this problem is to have multiple flash memory devices. In that case, one device may be written to, while the other device is being erased. This has numerous disadvantages. The multiple devices take up more real-estate. Because there are multiple devices hardware is duplicated. Additionally, using multiple flash memory devices may cost more, increase power use, and decrease overall system reliability.